var ImageFile; // 声明全局变量

function listenFileSelect() { 
    var fileInput = document.getElementById("mypicInput"); // 获取文件输入元素
    
    // 添加文件选择变化监听
    fileInput.addEventListener('change', function (e) { 
        ImageFile = e.target.files[0]; // 存储选中的文件（全局变量）
        var imageurl = URL.createObjectURL(ImageFile); // 创建文件URL
        console.log(imageurl); // 打印URL（调试用）
        updateImage(imageurl); // 更新图片预览
    });
}

// 立即执行函数，初始化监听
listenFileSelect();

function updateImage(imageurl) { 
    const image = document.getElementById("mypic-goes-here"); // 获取图片预览元素
    image.src = imageurl; // 设置图片源为文件URL
}

function savePost() { 
    // 收集表单数据
    var calorieData = document.getElementById('calorieInput').value;
    var details = document.getElementById('detailsText').value;
    var image = document.getElementById('mypicInput').files[0]; // 获取选中的文件
    
    // 格式化当前日期
    const now = new Date(); 
    const dformatted = now.toLocaleString('en-US', { 
        weekday: 'short',  // 星期简称（如"Mon"）
        year: 'numeric',   // 四位年份（如2025）
        month: 'short',    // 月份简称（如"May"）
        day: 'numeric',    // 日期（如13）
        hour: 'numeric',   // 小时（12小时制）
        minute: 'numeric',  // 分钟
        second: 'numeric'   // 秒
    });
    
    // 创建表单数据对象
    var formData = { 
        date: dformatted,       // 日期
        calories: calorieData,  // 卡路里数值
        details: details,       // 描述
        imageName: image?.name  // 图片文件名（安全可选链操作）
    };
    
    // 保存帖子到历史记录
    addToPostHistory(formData);
}

function addToPostHistory(data) { 
    var user = JSON.parse(localStorage.getItem("loggedinUser"));
    
    if (user) { 
        var users = JSON.parse(localStorage.getItem("users")) || []; // 确保users为数组
        var email = user["email"]; 
        
        // 查找当前登录用户
        const person = users.find(u => u.email === email);
        
        // 初始化history数组（若不存在）
        if (!person.history) { 
            person.history = []; 
        }
        
        // 添加新帖子到历史记 录
        person.history.push(data);
        
        // 更新localStorage中的用户数据
        localStorage.setItem("users", JSON.stringify(users));
        
        // 保存卡路里总数（调用前需确保data包含calories字段）
        if (data.calories) { 
            addCountLocalStorage(data.calories);
        }
        
        alert('Data saved successfully.');
    } else { 
        console.log("No one is logged in"); 
    }
}

function addCountLocalStorage(value) { 
    var user = JSON.parse(localStorage.getItem("loggedinUser"));
    
    if (user) { 
        var users = JSON.parse(localStorage.getItem("users")) || [];
        const person = users.find(u => u.email === user["email"]);
        
        
        person.count = person.count ? Number(person.count) : 0; 
        person.count += Number(value); // 累加卡路里数值
        
 
        localStorage.setItem("users", JSON.stringify(users));
    }
}